package com.rmb.system.service;

import com.github.pagehelper.PageInfo;
import com.rmb.mart.entity.linxi.RmbSystemUser;

import java.util.List;

/**
 * (RmbSystemUser)表服务接口
 *
 * @author makejava
 * @since 2021-01-20 16:30:46
 */
public interface RmbSystemUserService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    RmbSystemUser queryById(Long id);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<RmbSystemUser> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param rmbSystemUser 实例对象
     * @return 实例对象
     */
    RmbSystemUser insert(RmbSystemUser rmbSystemUser);

    /**
     * 修改数据
     *
     * @param rmbSystemUser 实例对象
     * @return 实例对象
     */
    RmbSystemUser update(RmbSystemUser rmbSystemUser);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

    /**
     * 查询所有用户
     * @param page 起始页数
     * @param size 条数
     * @return 实例对象
     */
    PageInfo<RmbSystemUser> findList(int page, int size);

    /**
     * 添加用户
     * @param rmbSystemUser 数据
     * @return 是否
     */
    int addUser(RmbSystemUser rmbSystemUser);

    /**
     * 删除用户
     * @param id 编号
     * @return 是否
     */
    int delUser(Long id);

    /**
     * 修改用户信息
     * @param rmbSystemUser 数据
     * @return 是否
     */
    int updateUser(RmbSystemUser rmbSystemUser);

    /**
     * 修改状态
     * @param id 编号
     * @param status 状态
     * @return 是否
     */
    int updateStatus(Long id, int status);

    /**
     * 调整部门
     * @param id 编号
     * @param deptId 部门编号
     * @param stationId 岗位编号
     * @return 是否
     */
    int updDeptStation(Long id, Long deptId, Long stationId);

    /**
     * 重置密码
     * @param id 编号
     * @param password 旧密码
     * @param newPwd 新密码
     * @return 是否
     */
    int updatePwd(Long id, String password, String newPwd);

    /**
     * 根据用户名查询对象
     * @param name 用户名
     * @return 实例对象
     */
    RmbSystemUser findByName(String name);
}